﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace SolutionSettings_UnitTests {
    public class MockSolution : EnvDTE.Solution {
        public MockSolution(string filename) {
            this.FileName = filename;
        }

        public EnvDTE.Project AddFromFile(string FileName, bool Exclusive = false) {
            throw new NotImplementedException();
        }

        public EnvDTE.Project AddFromTemplate(string FileName, string Destination, string ProjectName, bool Exclusive = false) {
            throw new NotImplementedException();
        }

        public EnvDTE.AddIns AddIns {
            get { throw new NotImplementedException(); }
        }

        public void Close(bool SaveFirst = false) {
            throw new NotImplementedException();
        }

        public int Count { get; set; }

        public void Create(string Destination, string Name) {
            throw new NotImplementedException();
        }

        public EnvDTE.DTE DTE {
            get { throw new NotImplementedException(); }
        }

        public string ExtenderCATID {
            get { throw new NotImplementedException(); }
        }

        public dynamic ExtenderNames {
            get { throw new NotImplementedException(); }
        }

        public string FileName { get; private set; }

        public EnvDTE.ProjectItem FindProjectItem(string FileName) {
            throw new NotImplementedException();
        }

        public string FullName {
            get {
                return Path.GetFileName(FileName);
            }
        }

        public System.Collections.IEnumerator GetEnumerator() {
            throw new NotImplementedException();
        }

        public EnvDTE.Globals Globals {
            get { throw new NotImplementedException(); }
        }

        public bool IsDirty { get; set; }

        public bool IsOpen { get; set; }

        public EnvDTE.Project Item(object index) {
            throw new NotImplementedException();
        }

        public void Open(string FileName) {
            throw new NotImplementedException();
        }

        public EnvDTE.DTE Parent {
            get { throw new NotImplementedException(); }
        }

        public string ProjectItemsTemplatePath(string ProjectKind) {
            throw new NotImplementedException();
        }

        public EnvDTE.Projects Projects {
            get { throw new NotImplementedException(); }
        }

        public EnvDTE.Properties Properties {
            get { throw new NotImplementedException(); }
        }

        public void Remove(EnvDTE.Project proj) {
            throw new NotImplementedException();
        }

        public void SaveAs(string FileName) {
            this.FileName = FileName;
            Saved = true;
            IsDirty = false;
        }

        public bool Saved { get; set; }

        public EnvDTE.SolutionBuild SolutionBuild {
            get { throw new NotImplementedException(); }
        }

        public dynamic get_Extender(string ExtenderName) {
            throw new NotImplementedException();
        }

        public string get_TemplatePath(string ProjectType) {
            throw new NotImplementedException();
        }
    }
}
